<?php
/**
 * Article
 *
 * Обработка данных статей
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class Article extends ActiveRecord  {
	protected $tableName = 'article';
	public $pkName = 'ID_article';
	
	protected $arrWysiwyg = array('text');
	protected $arrCheckboxes = array('is_hms');
	
	protected $arrSettings = array(
		'created_at' => true,  // в БД храним время создания
		'updated_at' => true, 	// в БД храним время редактирования
		'author' => true			// в БД храним автора (ID_user)
	);
	
  public $validatesLengthOf = array(
	  'article_name' => array('minimum' => 2, 'maximum' => 128, 'message' => 'название страницы должно состоять из 2-128 символов'),
    //'url' => array('minimum' => 2, 'maximum' => 128, 'message' => 'url должен состоять из 2-128 символов'),
    //'title_ru' => array('minimum' => 2, 'maximum' => 128, 'message' => 'meta-title (ru) должен состоять из 2-128 символов'),
    //'text_ru' => array('minimum' => 2, 'message' => 'текст (ru) должен быть заполнен'),
    //'text_en' => array('minimum' => 2, 'message' => 'текст (en) должен быть заполнен'),
  );
  
  public $validatesFormatOf = array(
    'url' => array('message' => 'URL введен неверно', 'with' => '|^[\-_A-Za-z0-9\.]+$|', 'allowNull' => true)
  );
  
  public $validatesUniquenessOf = array(
    'url' => array('message' => 'Такой URL уже используется', 'allowOneNull' => true)
  );
  
  public function __construct($arrInitialFields = null, array $arrSettings = array()) {
		Service_Debug::setDebug();
		parent::__construct($arrInitialFields, $arrSettings);
	}  
  
  /**
   * (non-PHPdoc)
   * @see ActiveRecord::beforeDelete()
   */
  public function beforeDelete() {
  	Service_Debug::setDebug();
    if (!$this->id) return false;
		$objDB = Service_Database::instance();
		// Системные статьи нельзя удалить
		$stmt = "SELECT `is_system` FROM `article` WHERE `ID_article` = '" . $this->id . "'";
		return !$objDB->selectSimpleField($stmt);
  }
  
  /**
   * (non-PHPdoc)
   * @see ActiveRecord::beforeValidation()
   */
  public function beforeValidation() {
  	Service_Debug::setDebug();
  	if (!empty($this->tableFields['url'])) {
  		if (in_array($this->tableFields['url'], array('rus', 'eng', 'ajax', 'auth', 'pressure', 'cms', 'hotels', 'test'))) {
  			$arrTemp = array();
  			$this->errorValidated('url', $arrTemp, 'данный URL является системным - его нельзя использовать');
  		}
  	}
  }
  
}
?>